package com.example.zz.example.shape;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.app.Application;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;

import com.example.zz.example.R;

/**
 * <?xml version="1.0" encoding="utf-8"?>
 * <shape xmlns:android="http://schemas.android.com/apk/res/android"
 *     android:dither=["true" | "false"]       //将在位图的像素配置与屏幕不同时（例如：ARGB 8888 位图和 RGB 565 屏幕）启用位图的抖动；值为“false”时则停用抖动。默认值为 true。
 *     android:shape=["rectangle" | "oval" | "line" | "ring"]//分别为矩形、椭圆、线、环。默认为矩形rectangle
 *     android:innerRadius="integer"           // shape为ring时有效，内环半径
 *     android:innerRadiusRatio="float"        // shape为ring时有效，内环的厚度比，即环的图形宽度与内环半径的比例，按照这个比例计算内环半径，默认为3，可被innerRadius值覆盖
 *     android:thickness="integer"             // shape为ring时有效，环的厚度
 *     android:thicknessRatio="float"          // shape为ring时有效，环的厚度比，即环的图形宽度与环的厚度的比例，按照这个比例计算环的厚度，默认为9，可被thickness值覆盖
 *     android:tint="color"                    // 给shape着色
 *     android:tintMode=["src_in" | "src_atop" | "src_over" | "add" | "multiply" | "screen"] // 着色类型
 *     android:useLevel=["true" | "false"]     // 较少用，一般设为false，否则图形不显示。为true时可在LevelListDrawable使用
 *     android:visible=["true" | "false"] >
 *     <!-- 圆角 -->
 *     <corners
 *         android:radius="integer"            // 圆角半径，设置下面四个属性时，对应的位置属性会被覆盖
 *         android:topLeftRadius="integer"     // 左上角圆角半径
 *         android:topRightRadius="integer"    // 右上角圆角半径
 *         android:bottomLeftRadius="integer"  // 左下角圆角半径
 *         android:bottomRightRadius="integer" // 右下角圆角半径
 *         />
 *     <!-- 渐变 -->
 *     <gradient
 *         android:type=["linear" | "radial" | "sweep"]// 渐变类型，线性、放射性、扫描性；默认为线性
 *         android:angle="integer"             // 渐变角度，渐变类型为linear时有效；默认为0，从左至右渐变，角度逆时针方向计算，角度需要时45的整数倍数
 *         android:centerColor="integer"       // 渐变中间位置颜色
 *         android:startColor="color"          // 渐变开始位置颜色
 *         android:endColor="color"            // 渐变结束位置颜色
 *         android:centerX="float"             // 设置渐变中心的X坐标，取值区间[0,1]，默认为0.5，即中心位置
 *         android:centerY="float"             // 设置渐变中心的Y坐标，取值区间[0,1]，默认为0.5，即中心位置
 *         android:gradientRadius="integer"    // type为放射性渐变radial时有效，渐变的半径
 *         android:useLevel=["true" | "false"] // 与shape中该属性的一致
 *         />
 *     <!-- 内边距 -->
 *     <padding
 *         android:left="integer"              // 左边距
 *         android:top="integer"               // 上边距
 *         android:right="integer"             // 右边距
 *         android:bottom="integer"            // 下边距
 *         />
 *     <!-- 大小 -->
 *     <size
 *         android:width="integer"             // 图形宽度
 *         android:height="integer"            // 图形高度
 *         />
 *     <!-- 填充 -->
 *     <solid
 *         android:color="color"               // 图形的填充色
 *         />
 *     <!-- 描边 -->
 *     <stroke
 *         android:width="integer"             // 描边的宽度
 *         android:color="color"               // 描边的颜色
 *         android:dashWidth="integer"         // 虚线宽度
 *         android:dashGap="integer"           // 虚线间隔
 *         />
 * </shape>
 *
 * 参考：https://blog.csdn.net/killerjava/article/details/121406098
 */

public class ShapeActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shape);

        Paint mPaint = new Paint();
        ColorMatrix mColorMatrix = new ColorMatrix();
        mColorMatrix.setSaturation(0);
        mPaint.setColorFilter(new ColorMatrixColorFilter(mColorMatrix));

        //单个界面设置默哀黑白模式
//        View decorView = getWindow().getDecorView();
//        Paint paint = new Paint();
//        ColorMatrix cm = new ColorMatrix();
//        cm.setSaturation(0);
//        paint.setColorFilter(new ColorMatrixColorFilter(cm));
//        decorView.setLayerType(View.LAYER_TYPE_HARDWARE,paint);


    }
}